import { request } from 'umi';
import axios from 'axios';
import { message, notification } from 'antd';

const postApiList = [
  //资产管理
  '/assetInfo/getAllAssetInfo', //资产管理初始数据
  '/assetInfo/showAssetInfo', //查看详情
  '/assetInfo/deleteInfo', //删除资产
  '/assetInfo/addAsInfo', //新增
  '/assetInfo/updateInfo', //修改
  '/assetInfo/getXXZCYWLX', //获取信息业务资产类型
  '/assetInfo/getXXZCWLLX', //获取信息网络资产类型
  '/common/getOrgList', //获取单位
  '/common/getDictItemListByDictCode', //获取下拉列表(参数：固定资产)
  '/asset/exportExcel2', //导出表格
  '/assetFixed/showAssetFixedList', //固定资产列表及查询
  '/assetFixed/getGDZCLX', //获取固定资产类型
  '/assetFixed/delAssetFixed', //删除固定资产
  '/assetFixed/addAssetFixed', //新增固定资产
  '/assetFixed/modAssetFixed', //编辑固定资产
  '/assetFixed/selectAssetFixedById', //查看固定资产

  //单位运营检查
  '/unit/management/showUnitManagement', //初始数据
  '/unit/management/getUnitManagemenetById', //查询详情
  '/unit/management/addUnitManagement', //添加
  '/unit/management/modUnitManagementById', //修改
  '/unit/management/getAllProvince', //省
  '/unit/management/getAllCity', //市
  '/unit/management/getAllDistrict', //区县

  //安全检查
  '/securityCheck/findAll', //数据初始化
  '/securityCheck/findSecurityCheck', //查看
  '/securityCheck/findDisposalResult', //有调用结果时，查看需要调用
  '/securityCheck/addSc', //添加安全检查
  '/securityCheck/addDr', //添加处置结果
  '/securityCheck/delSc', //securityCheck/delSc
  '/securityCheck/reminder', //催办

  //巡检管理
  '/polling/management/showList', //巡检列表初始数据
  '/polling/management/selectPomById', //查看详情
  '/polling/management/addPom', //新增
  '/polling/management/updatePomById', //删除
  '/polling/management/modPom', //修改

  //信息上报
  '/report/addReport', //工作情况信息上报-新增
  '/report/addReport', //安全事件上报-新增
  '/report/delReport', //信息上报删除
  '/report/getReport', //获取信息上报列表
  '/report/updateReport', //信息上报-修改
  '/report/showReport', //信息上报-查看
  '/report/dictItemList', //字典

  //工作部署
  '/work/getWork', //工作部署列表
  '/work/showJjt', //工作部署交通厅-查看
  '/work/addWork', //工作部署新增
  '/work/updateSecurityWork', //工作部署处置
  '/work/updateWork', //工作部署编辑
  '/work/delWork', //工作部署删除
  '/work/showWorkDanWei', //工作部署单位处置详情查看
  '/notification/dispose/dictItemList', //字典列表
  '/notification/dispose/showServiceProviderList', //接收单位列表
  '/work/cuiBanJtt', //催办

  // 公告发布
  '/affiche/showUser', // 查询组织用户树
  '/affiche/addAffiche', // 新增
  '/affiche/delAffiche', // 删除
  '/affiche/showAffiche', // 查看
  '/affiche/getAfficheList', // 列表

  // 安全监测
  '/alarm/getAlarm', // 查询安全监测列表
  '/alarm/dictItemYZDJList', // 查询字典 严重等级
  '/alarm/dictItemGZFLList', //查询字典 告警分类
  '/unit/management/selectPersonList', //获取组织人可选项
  '/alarm/showAlarm', //详情
  '/alarm/modAlarmDisposal', //处置
];
const API = {};
postApiList.forEach((item) => {
  // 使用正则取到接口路径的最后一个子串，比如: getPublicKey
  const apiName = /[^/]+$/.exec(item)[0];
  if (apiName == 'exportExcel2') {
    API[apiName] = (data = {}) => {
      return request(item, {
        method: 'get',
        data,
      });
    };
  } else if (apiName) {
    API[apiName] = (data = {}) => {
      return request(item, {
        method: 'post',
        data,
      });
    };
  }
});

const download = (filename, link) => {
  let DownloadLink = document.createElement('a');
  DownloadLink.style = 'display: none'; // 创建一个隐藏的a标签
  DownloadLink.download = filename;
  DownloadLink.href = link;
  document.body.appendChild(DownloadLink);
  DownloadLink.click(); // 触发a标签的click事件
  document.body.removeChild(DownloadLink);
};
export const downloadFn = (data) => {
  //   console.log(data);
  return axios({
    headers: {
      jwt: localStorage.getItem('jwt'),
    },
    url: '/jiaotong/assetInfo/exportExcel',
    method: 'post',
    data,
    responseType: 'blob',
  })
    .then((res) => {
      console.log(res.data);
      if (res.data) {
        let fileUrl = window.URL.createObjectURL(res.data);
        download('信息资产导出表格', fileUrl);
        window.URL.revokeObjectURL(fileUrl);
      }
    })
    .catch((error) => {
      message.error('导出失败，请重试');
    });
};
export default API;
